Field-sensitive pointer analysis for C
نویسندگان
چکیده
The subject of this paper is flowand context-insensitive pointer analysis. We present, for the first time, a fieldsensitive constraint-based analysis for C and evaluate its effects on time and precision. In addition, we study in detail four solving algorithms, including the Heintze-Tardieu solver, over 7 common C programs ranging in size from 5000 to 150,000 lines of code. Our results indicate the fieldsensitive analysis is more expensive to compute, but more precise. We also find the Heintze-Tardieu solver to be a robust choice and we examine why.
منابع مشابه
A Context-Sensitive Memory Model for Verification of C/C++ Programs
Verification of low-level C/C++ requires a precise memory model that supports type unions, pointer arithmetic, and casts. We present a new memory model that splits memory into a finite set of disjoint regions based on a pointer analysis. The main contribution is a field-, arrayand context-sensitive pointer analysis tailored to verification. We have implemented our memory model for the LLVM bitc...
متن کاملA Context-Sensitive Pointer Analysis Phase in Open64 Compiler
The precision of the pointer analysis plays an important role in compiler and other software understanding tools. Contextsensitivity is proven to be an effective methods to improve the precision of the final results of pointer analysis. Many context-sensitive pointer analysis methods have been proposed, however, few of them have been incorporated into production compilers. In Open64 compiler, i...
متن کاملAutomatic Parallelization of Restricted C Programs using Pointer Analysis
This paper describes a restriction on pointer usage in C language for parallelism extraction by an automatic parallelizing compiler. By rewriting programs to satisfy the restriction, automatic parallelization using flow-sensitive, context-sensitive pointer analysis on an 8 cores SMP server achieved 3.80 times speedup for SPEC2000 art, 6.17 times speedup for SPEC2006 lbm and 5.14 times speedup f...
متن کاملSPAS: Scalable Path-Sensitive Pointer Analysis on Full-Sparse SSA
We present a new SPAS (ScalablePAth-Sensitive)framework for resolving points-to sets in C programs that exploits recent advances in pointer analysis. SPAS enables intraprocedural path-sensitivity to be obtained in flow-sensitive and context-sensitive (FSCS) techniques scalably, by using BDDs to manipulate program paths and by performing pointer analysis level-by-level on a full-sparse SSA repre...
متن کاملRegion-Based Selective Flow-Sensitive Pointer Analysis
We introduce a new region-based SELective Flow-Sensitive (Selfs) approach to inter-procedural pointer analysis for C that operates on the regions partitioned from a program. Flow-sensitivity is maintained between the regions but not inside, making traditional flow-insensitive and flow-sensitive as well as recent sparse flow-sensitive analyses all special instances of our Selfs framework. By sep...
متن کامل